Adaptive bitrate streaming refers to a technique that has been used in multimedia streaming over a computer network. While most multimedia streaming technologies has utilized one or more streaming protocols such as RTP with Real Time Streaming Protocol (RTSP), more recent adaptive streaming technologies are implemented almost exclusively based on Hypertext Transfer Protocol (HTTP) and are designed to function efficiently over large distributed HTTP networks, such as the Internet.
Most recent adaptive streaming technologies may function by detecting a user's bandwidth and CPU capacity in real time and subsequently by adjusting the quality of a video stream of the user accordingly. Such endeavor may require the use of an encoder to encode a single video at multiple bitrates. The video playing client could then switch among video streams in different encoded bitrates based on resources available to the user at that time. The above described adaptive streaming technology would benefit from very little buffering and fast initiating time and would result in good user experiences for both high-end and low-end connections.
As more recent adaptive streaming technologies have been implemented based on adaptive bitrate streaming which would encode a video source with different bitrates, each of the video streams of the different bitrates could be segmented into smaller parts as each part may contain a video segment of a few milliseconds. The streaming client device is made aware of available streams at differing bitrates and segments of the streams by a manifest file. When a video streaming session starts, the client may request the segments to be received from the stream with the lowest bitrate. If the client device has determined that its potential download speed is higher than the bitrate of a segment to be downloaded, then the client device may request to download the segment at a higher bitrate. Subsequently, if the client device has determined that the network throughput has deteriorated to the point that the download speed for a segment is lower than the bitrate of the segment, then the client device will request for a lower bitrate segment. The segment sizes may vary and may depend on design considerations, but each segment could typically be downloaded between two to ten seconds.
Besides traditional satellite television services, more and more television services are accessed by Internet protocol suite over a packet-switched network such as a Local Area Network (LAN) or the Internet. Internet Protocol Television (IPTV) is a general term used to describe a mean of delivering television services over the internet. The types of programs which the IPTV may provide could be demarcated into various ways. For example, the IPTV may provide linear TV, Time-Shifted TV, Video on Demand (VOD), and so forth. Linear TV could be simply plain live television programing broadcasted over the Internet. Time-Shifted TV is a service which allows viewers to watch past television programs on demand. Some services may be able to remove advertisements from the past television programs. VOD generally has nothing to do with television programing but is a catalogue based service which allows a user to watch movies based on their preferences.
Developed from experience of viewing televisions, people could be familiar with a playback system which has a plurality of channels. The audiences may also be used to switch among many channels whichever piques their interests. For example, a user may temporarily switch from channel A to channel B if the program of channel A does not interest the user. After a period of time, the user may switch back to channel A and see if channel A shows any contents of interests. Based on characteristics of live broadcasts for linear TV, when a user switch to another channel, the program of original channel would still broadcast continuously. Hence, the user does not cope with the content which does not interest the user by skipping ahead or by changing the content through other means but instead simply by letting the time passes.
Presently, watching streaming media is among popular reasons to access the Internet. Although the streaming media may not be a live program, users usually would use mobile devices such as smart phones or tablets to play the streaming media via the interne. The desktop PC, laptop or IPTV are also alternative ways to access streaming media. To facilitate the access of streaming media, content providers often provide customized mobile applications (Apps) such as YouTube, Dailymotion or Netflix. The Apps usually has a usable user interface (UI). Another way to access streaming media may include using browsers that support <video> or <audio> tags of the HTML5 standard.
To some extent, a user may regard each streaming media as a channel of traditional TV. One difference between a streaming media and the traditional TV is that a non-live streaming media has a fixed running time. For example, each movie of Netflix has a fixed running time which spans from one to several hours. Under this model, it would be conceivable that there could be millions of streaming channels on a particular content provider's website. Similar to linear TV, a user may either access one of such streaming channels or switch to another if the current program of the channel being accessed does not interest the user. Similar to linear TV, a user would expect that if the user switches away from a channel of interest without pressing “pause”, the streaming content of the channel will keep on streaming. Consequently, when the user switches back to original channel of interest after a portion of the streaming content has played out, the user would be able to watch the remaining portion.
However, in general, the above described functionality is not supported by mobile electronic devices or other low-end devices. A comparison between a typical mobile device (or a device with limited computational ability) and a typical desktop PC (or a laptop PC or a similar device with a more powerful computational ability) reveals that the typical mobile device would generally have a worse central processing unit (CPU), a lower double data rate (DDR) frequency, a smaller screen, and a nearly non-existent support of multi-tasking.
Presently, while modern mobile operating system (OSs) does support multiple Apps running simultaneously, few, if any, would actually allow a user to see two or more Apps windows at the same time. Under such single-window constraint, tasks such as checking a calendar or writing an email would be tedious since the user must move back and forth between Apps. To transfer information from one App to another, the user must resort to either the traditional copy-and-paste or to find another way to store that information. Thus, it could be certain that multitasking in a mobile device such as in a smart phone could be needed for many circumstances.
For example, some devices may only have a hardware codec. A device may merely support decoding one-way video stream to a movie with full high definition (FHD) 60 fps or dual way to a movie with high definition (HD) 60 fps at the same time. Since a resource such as a different video codec has a mutually exclusive property, only limited processes could utilize the video codec simultaneously. Hence, a video codec would impose a physical constraint in the number of actual sessions that can be launched concurrently.
As a practical application, FIG. 1 illustrates an example of two playback sessions displayed on a mobile electronic device in which two pages (or tabs) are opened on a chrome browser, and both pages (or tabs) may connect to a video streaming service such as YouTube. Each of the two pages (or tabs) has a playback session. Suppose that a first one of the playback sessions is being played first and subsequently a second one of the playback session is being played later, the first one of the playback session would cease playing.
Table 1 shows a summary of popular browsers on a mobile device (smart phone) with regard to various capabilities of each of the browsers.
TABLE 1Mobile DeviceChromeOperaFirefoxCould playNoNoYesmultiple sessions?Background——Yesplayback?
From Table 1, it can be seen that, for mobile devices, some browsers do not support launching multiple playback sessions simultaneously.
Table 2 shows a summary of popular Apps on a mobile device (smart phone) with regard to various the capability of supporting multiple sessions.
TABLE 2Mobile DeviceYouTubeDailymotionNetflixIqiyiCould playNoNoNoNomultiplesessions?
As seen in Table 2, none of the Android Apps would support multiple playback sessions. This means that if streaming content B is switched to while streaming content A is being played back, then streaming content A would be stopped automatically. Although some Apps often provide the functionality to bookmark a breakpoint for the streaming content A and playback from the break point once the user has returned to the streaming content A, obviously the process still does not resemble a linear TV which would simply keep on streaming. However, it might make more sense for a user to determine whether the streaming of A would stop or not. Moreover, a user may also prefer to continuously stream several movies simultaneously, even by using a mobile device with limited hardware resources.
Table 3 shows a summary of popular browsers on a Desktop or laptop computer with regard to various capabilities of each of the browsers.
TABLE 3Desktop (laptop) DeviceChromeOperaFirefoxIECould playYesYesYesYesmultiplesessions?BackgroundYesYesYesYesplayback?
From Table 3, it can be seen that for adaptive streams could be display more efficiently if there is a scheduling policy that distinguishes between background and foreground playback sessions.
Referring back to Table 1 and Table 3, another issue in which could be applicable to the mobile device and the desktop/laptop computer is that when a streaming content is no longer streaming under the circumstance when the streaming content is switched to the background of a display such as being switched as a background window, a background frame, a background tab, and etc., the streaming content may still be downloading, and thus bandwidth could be wasted from such downloads. Moreover, regardless of whether an electronic device is a mobile device or a desktop/laptop computer, the device might automatically try to download and decode streams and thus would waste the system resources even further.
One example which involves the above described scenario is to open multiple tabs, and each of the tabs shows a streaming content which is hosted by an external server and can be shown on a Firefox browser of the mobile device. The Firefox browser may allow a user to open several tabs at the same time. However, as being limited by the small screen size on mobile device, at most one tab, the active tab, could be displayed on the Firefox browser. The tabs not displayed on the Firefox browser might still be downloading and pre-buffering without any scheduling and thus would waste the system resources.